#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
typedef long long ll;
const int maxn=100050;
const int INF=1e9;

struct Linear_Basis{
	int cnt;
	int p[70];
	void init() {
		memset(p,0,sizeof(p));
		cnt=0;
	}
	bool Insert(ll x) {
		for(int i=63 ;i >= 0;i--) {
			if((x>>i) & 1) {
				if(!p[i]) {
					p[i]=x;
					break;
				}
				x^=p[i];
			}
		}
		if(x>0) cnt++;
		return x>0;
	}

}sol;

ll f[72];

char s[105][105];

int main() {
	int T;scanf("%d",&T);
	while(T--) {
		memset(f, 0,sizeof(f));
		int n,k;scanf("%d%d",&n,&k);
		if(k%2==0) {
			printf("-1\n");
			continue;
		}
		else {
			if(n==k) {
				if(n==1) {
					printf("1\n");
					continue;
				}
				printf("-1\n");
				continue;
			}
			for(int i=0;i<n;i++) {
				for(int j=0;j<n;j++) {
					s[i][j]='0';
				}
			}
			for(int i=0;i<=k;i++) {
				for(int j=0;j<=k;j++) {
					if(i+j==k) s[i][j]='0';
					else s[i][j]='1';
				}
			}
			for(int i=k+1;i<n;i++) {
				for(int j=0;j<n;j++) {
					if(j<=k-2) {
						s[i][j]='1';
					}
					else {
						if(i==j) s[i][j]='1';
					}
				}
			}
/*			for(int i=0;i<n;i++) {
				for(int j=0;j<n;j++) {
					printf("%c ",s[i][j]);
				}
				printf("\n");
			}*/
			for(int i=0;i<n;i++) {
				ll now = 0;
				for(int j=0;j<n;j++) {
					if(s[i][j]=='1') now |= (1ll<<(1ll*j));
				}
				printf("%lld ",now);
			}
			printf("\n");
		}
	}	
	return 0;
}
